GLSL着色器程序
除了使用Cg/HSL着色器程序,OpenGL着色语言(GLSL着色器可以直接写)。
然而,使用原始GLSL只是推荐给测试,或者当你知道你只会针对Mac OS X,OpenGL ES 2.0移动设备或Linux。在正常情况下,Unity将保存Cg / HLSL优化GLSL时必要的。
GLSL片段
GLSL程序片段被写入在GLSLPROGRAM和ENDGLSL关键字之间。
在GLSL,所有的着色器函数的入口点是一个叫做main()。当Unity加载GLSL着色器,它加载的源次顶点与顶点程序,预处理器定义,并再次为片段与片段程序,预处理器定义。所以单独在GLSL代码段的顶点和片段程序部分的方法是用# ifdef顶点围绕着它们。#判断和# ifdef片段..# endif。每个GLSL代码段必须包含一个顶点程序和一个片段程序。
标准包括文件匹配提供了Cg着色器;他们只是有一个.glslinc扩展:
UnityCG.glslinc
顶点着色器的输入来自预定义GLSL变量(gl_Vertex、gl_MultiTexCoord0…)或用户定义的属性。切向量通常只需要一个用户定义的属性:
attribute vec4 Tangent;
数据从顶点到片段程序通过不同的变量,例如:
varying vec3 lightDir; // vertex shader computes this, fragment shader uses this
🔚